home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-madman-networkmib-03.txt < prev    next >
Text File  |  1993-08-19  |  20KB  |  600 lines

  1.                             Internet Draft
  2.                     Network Services Monitoring MIB
  3.  
  4.                                Ned Freed
  5.                               Steve Kille
  6.  
  7.                           MADMAN Working Group
  8.                              August 18, 1993
  9.                        Expires: February 18, 1994
  10.  
  11. 1. Status of this Memo
  12.  
  13. This document is an Internet Draft.  Internet Drafts are working
  14. documents of the Internet Engineering Task Force (IETF), its Areas,
  15. and its Working Groups.  Note that other groups may also distribute
  16. working documents as Internet Drafts.
  17.  
  18. Internet Drafts are draft documents valid for a maximum of six 
  19. months.  Internet Drafts may be updated, replaced, or obsoleted by
  20. other documents at any time.  It is not appropriate to use Internet
  21. Drafts as reference material or to cite them other than as a "working
  22. draft" or "work in progress."
  23.  
  24. To learn the current status of any Internet-Draft, please check the
  25. 1id-abstracts.txt listing contained in the Internet-Drafts Shadow
  26. Directories on ds.internic.net, nic.nordu.net, ftp.nisc.sri.com,
  27. or munnari.oz.au.
  28.  
  29. 2. Abstract
  30.  
  31. This document defines the generic part of a MIB suitable for
  32. monitoring applications which provide some variety of network
  33. service.  This MIB is intended to be extended to accomodate
  34. monitoring specific to a given type of service, for example, a
  35. Message Transfer Agent (MTA) service or a Directory Service Agent
  36. (DSA) service.
  37.  
  38. 3. The SNMPv2 Network Management Framework
  39.  
  40. The SNMPv2 Network Management Framework consists of four major
  41. components.  They are: 
  42.  
  43.   o RFC 1442 which defines the SMI, the mechanisms used for describing
  44.     and naming objects for the purpose of management.
  45.   o RFC 1213 defines MIB-II, the core set of managed objects for the
  46.     Internet suite of protocols.   
  47.   o RFC 1445 which defines the administrative and other architectural
  48.     aspects of the framework. 
  49.   o RFC 1448 which defines the protocol used for network access to
  50.     managed objects. 
  51.  
  52. The Framework permits new objects to be defined for the purpose of
  53. experimentation and evaluation.
  54.  
  55. 3.1 Object Definitions
  56.  
  57. Managed objects are accessed via a virtual information store, termed
  58. the Management Information Base or MIB.  Objects in the MIB are
  59. defined using the subset of Abstract Syntax Notation One (ASN.1)
  60. defined in the SMI.  In particular, each object object type is named
  61. by an OBJECT IDENTIFIER, an administratively assigned name.  The
  62. object type together with an object instance serves to uniquely
  63. identify a specific instantiation of the object.  For human
  64. convenience, we often use a textual string, termed the descriptor,
  65. to refer to the object type.
  66.  
  67. 4. Rationale for having a Network Services Monitoring MIB
  68.  
  69. Much effort has been expended in developing tools to manage lower
  70. layer network facilities.  However, relatively little work has been
  71. done on managing application layer entities.  It is neither
  72. efficient nor reasonable to manage all aspects of application layer
  73. entities using only lower layer information.  Moreover, the
  74. difficulty of managing application entities in this way increases
  75. dramatically as application entities become more complex.
  76.  
  77. This leads to a substantial need to monitor applications which
  78. provide network services, particularly distributed components such
  79. as MTAs and DSAs, by monitoring specific aspects of the application
  80. itself.  Reasons to monitor such components include but are not
  81. limited to measuring load, detecting broken connectivity, isolating
  82. system failures, and locating congestion.
  83.  
  84. In order to manage network service applications effectively two
  85. requirements must be met:
  86.  
  87. (1) It must be possible to monitor a large number of components
  88.     (typical for a large organization).
  89.  
  90. (2) Application monitoring must be integrated into general
  91.     network management.
  92.  
  93. SNMP is the clear choice for this sort of monitoring.  At present
  94. only simple read-only access is defined; this is sufficient to
  95. determine up/down status and provide an indication of a broad
  96. class of operational problems.   
  97.  
  98. 4.1 Restriction of Scope
  99.  
  100. The framework provided here is very minimal; there is a lot more that
  101. could be done. For example:
  102.  
  103. (1) General network service application configuration monitoring and
  104.     control.
  105.  
  106. (2) Detailed examination and modification of individual entries in
  107.     service-specific request queues.
  108.  
  109. (3) Probing to determine the status of a specific request (e.g. the
  110.     location of a mail message with a specific message-id).
  111.  
  112. (4) Requesting that certain actions be performed (e.g. forcing an
  113.     immediate connection and transfer of pending messages to some
  114.     specific system).
  115.  
  116. All these capabilities are both impressive and useful.  However,
  117. these capabilities would require provisions for strict security
  118. checking.  These capabilities would also mandate a much more complex
  119. design, with many characteristics likely to be fairly
  120. implementation-specific.  As a result such facilities are likely to
  121. be both contentious and difficult to implement. 
  122.  
  123. This document religiously keeps things simple and focuses on the
  124. basic monitoring aspect of managing applications providing network
  125. services.  The goal here is to provide a framework which is simple,
  126. useful, and widely implementable.
  127.  
  128. 4.2 Relationship to Directory Services
  129.  
  130. Use of and management of directory services already is tied up with
  131. network service application management.  There are clearly many things
  132. which could be dealt with by directory services and protocols.  We
  133. take the line here that static configuration information is both
  134. provided by and dealt with by directory services and protocols.
  135. The emphasis here is on transient application status.
  136.  
  137. By placing static information in the directory, the richness and
  138. linkage of the directory information framework does not need to be
  139. repeated in the MIB.  Static information is information which has a
  140. mean time to change of the order of days or longer.
  141.  
  142. When network service applications that employ directory services
  143. are monitored, it is recommend that a linkage be established, so
  144. that:
  145.  
  146. (1) The managed object contains its own directory name.  This
  147.     allows all directory information to be obtained by reference.
  148.     This will let a SNMP monitor capable of performing directory
  149.     queries present this information to the manager in an
  150.     appropriate format.  It is intended that this will be the
  151.     normal case. 
  152.  
  153. (2) The directory will reference the location of the SNMP agent,
  154.     so that an SNMP capable directory query agent could probe
  155.     dynamic characteristics of the object.  
  156.  
  157. (3) This approach could be extended further, so that the SNMP
  158.     attributes are modelled as directory attributes.  This would
  159.     dramatically simplify the design of directory service agents
  160.     that use SNMP to obtain the information they need.
  161.  
  162. 5. Application Objects
  163.  
  164. This MIB starts with a set of general purpose attributes which would
  165. be appropriate for a range of applications that provide network
  166. services.  Both OSI and non-OSI services can be accomodated.
  167. Additional tables defined in extensions to this MIB provide attributes
  168. specific to specific network services.
  169.  
  170. A table is defined which will have one row for each network service
  171. application running on the system.  The only static information held
  172. on the application is its name.  All other static information should
  173. be obtained from various directory services.  The applName is an
  174. external key, which allows an SNMP MIB entry to be cleanly related
  175. to the X.500 Directory.  In SNMP terms, the applications are grouped
  176. in a table called applTable, which is indexed by an integer key
  177. applIndex.
  178.  
  179. The type of the application will be determined by one or both of:
  180.  
  181. (1) Additional MIB variables specific to the applications.
  182.  
  183. (2) An association to the application of a specific protocol.
  184.  
  185. 6. The Application MIB
  186.  
  187. APPLICATION-MIB DEFINITIONS ::= BEGIN
  188.  
  189. IMPORTS
  190.     OBJECT-TYPE, experimental, Counter32, Gauge32
  191.       FROM SNMPv2-SMI
  192.     DisplayString, TimeStamp
  193.       FROM SNMPv2-TC;
  194.  
  195. application MODULE-IDENTITY
  196.     LAST-UPDATED ""
  197.     ORGANIZATION "IETF Mail and Directory Management Working Group"
  198.     CONTACT-INFO
  199.       "        Ned Freed
  200.  
  201.        Postal: Innosoft International, Inc.
  202.                250 West First Street, Suite 240
  203.                Claremont, CA  91711
  204.                US
  205.  
  206.        Tel: +1 909 624 7907
  207.        Fax: +1 909 621 5319
  208.  
  209.        E-Mail: ned@innosoft.com"
  210.     DESCRIPTION
  211.       "The MIB module describing network service applications"
  212.     ::= {experimental 46}
  213.  
  214. applObjects OBJECT IDENTIFIER ::= {application 1}
  215.  
  216.  
  217. -- The basic applTable contains a list of the application
  218. -- entities.
  219.  
  220. applTable OBJECT-TYPE
  221.     SYNTAX SEQUENCE OF ApplEntry
  222.     MAX-ACCESS not-accessible
  223.     STATUS current
  224.     DESCRIPTION
  225.         "The table holding objects which apply to all different
  226.          kinds of applications providing network services."
  227.     ::= {applObjects 1}
  228.  
  229. applEntry OBJECT-TYPE
  230.     SYNTAX ApplEntry
  231.     MAX-ACCESS not-accessible
  232.     STATUS current
  233.     DESCRIPTION
  234.       "An entry associated with a network service application."
  235.     INDEX {applIndex}
  236.     ::= {applTable 1}
  237.  
  238. ApplEntry ::= SEQUENCE {
  239.     applIndex
  240.         INTEGER,
  241.     applName
  242.         DisplayString,
  243.     applVersion
  244.         DisplayString,
  245.     applUptime
  246.         TimeStamp,
  247.     applOperStatus
  248.         INTEGER,
  249.     applLastChange
  250.         TimeStamp,
  251.     applInboundAssociations
  252.         Gauge32,
  253.     applOutboundAssociations
  254.         Gauge32,
  255.     applAccumulatedInboundAssociations
  256.         Counter32,
  257.     applAccumulatedOutboundAssociations
  258.         Counter32,
  259.     applLastInboundActivity
  260.         TimeStamp,
  261.     applLastOutboundActivity
  262.         TimeStamp,
  263.     applRejectedInboundAssociations
  264.         Counter32,
  265.     applFailedOutboundAssociations
  266.         Counter32
  267. }
  268.  
  269. applIndex OBJECT-TYPE
  270.     SYNTAX INTEGER (1..2147483647)
  271.     MAX-ACCESS not-accessible
  272.     STATUS current
  273.     DESCRIPTION
  274.       "An index to uniquely identify the network service
  275.        application."
  276.     ::= {applEntry 1}
  277.  
  278. applName OBJECT-TYPE
  279.     SYNTAX DisplayString
  280.     MAX-ACCESS read-only
  281.     STATUS current
  282.     DESCRIPTION
  283.       "The name the network service application chooses to be
  284.        known by."
  285.     ::= {applEntry 2}
  286.  
  287. applVersion OBJECT-TYPE
  288.     SYNTAX DisplayString
  289.     MAX-ACCESS read-only
  290.     STATUS current
  291.     DESCRIPTION
  292.       "The version of network service application software."
  293.     ::= {applEntry 3}
  294.  
  295. applUptime OBJECT-TYPE
  296.     SYNTAX TimeStamp
  297.     MAX-ACCESS read-only
  298.     STATUS current
  299.     DESCRIPTION
  300.       "The value of sysUpTime at the time the network service
  301.        application was last initialized.  If the application was
  302.        last initialized prior to the last initialization of the
  303.        network management subsystem, then this object contains
  304.        a zero value."
  305.     ::= {applEntry 4}
  306.  
  307. applOperStatus OBJECT-TYPE
  308.     SYNTAX INTEGER {
  309.       up(1),
  310.       down(2),
  311.       halted(3),
  312.       congested(4),
  313.       restarting(5)
  314.     }
  315.     MAX-ACCESS read-only
  316.     STATUS current
  317.     DESCRIPTION 
  318.       "Indicates the operational status of the network service
  319.        application. 'down' indicates that the network service is
  320.        not available. 'running' indicates that the network service
  321.        is operational and available.  'halted' indicates that the
  322.        service is operational but not available.  'congested'
  323.        indicates that the service is operational but no additional
  324.        inbound associations can be accomodated.  'restarting'
  325.        indicates that the service is currently unavailable but is
  326.        in the process of restarting and will be available soon."
  327.     ::= {applEntry 5}
  328.  
  329. applLastChange OBJECT-TYPE
  330.     SYNTAX TimeStamp
  331.     MAX-ACCESS read-only
  332.     STATUS current
  333.     DESCRIPTION
  334.       "The value of sysUpTime at the time the network service
  335.        application entered its current operational state.  If
  336.        the current state was entered prior to the last
  337.        initialization of the local network management subsystem,
  338.        then this object contains a zero value."
  339.     ::= {applEntry 6}
  340.  
  341. applInboundAssociations OBJECT-TYPE
  342.     SYNTAX Gauge32
  343.     MAX-ACCESS read-only
  344.     STATUS current
  345.     DESCRIPTION
  346.       "The number of current associations to the network service
  347.        application, where it is the responder.  For dynamic single
  348.        threaded processes, this will be the number of application
  349.        instances."
  350.     ::= {applEntry 7}
  351.  
  352. applOutboundAssociations OBJECT-TYPE
  353.     SYNTAX Gauge32
  354.     MAX-ACCESS read-only
  355.     STATUS current
  356.     DESCRIPTION
  357.       "The number of current associations to the network service
  358.        application, where it is the initiator.  For dynamic single
  359.        threaded processes, this will be the number of application
  360.        instances."
  361.     ::= {applEntry 8}
  362.  
  363. applAccumulatedInboundAssociations OBJECT-TYPE
  364.     SYNTAX Counter32
  365.     MAX-ACCESS read-only
  366.     STATUS current
  367.     DESCRIPTION
  368.       "The total number of associations to the application entity
  369.        since application initialization, where it was the responder.
  370.        For  dynamic single threaded processes, this will be the
  371.        number of application instances."
  372.     ::= {applEntry 9}
  373.  
  374. applAccumulatedOutboundAssociations OBJECT-TYPE
  375.     SYNTAX Counter32
  376.     MAX-ACCESS read-only
  377.     STATUS current
  378.     DESCRIPTION
  379.       "The total number of associations to the application entity
  380.        since application initialization, where it was the initiator.
  381.        For dynamic single threaded processes, this will be the
  382.        number of application instances."
  383.     ::= {applEntry 10}
  384.  
  385. applLastInboundActivity OBJECT-TYPE
  386.     SYNTAX TimeStamp
  387.     MAX-ACCESS read-only
  388.     STATUS current
  389.     DESCRIPTION
  390.       "The value of sysUpTime at the time this application last
  391.        had an inbound association.  If the last association
  392.        occurred prior to the last initialization of the network
  393.        subsystem, then this object contains a zero value."
  394.     ::= {applEntry 11}
  395.      
  396. applLastOutboundActivity OBJECT-TYPE
  397.     SYNTAX TimeStamp
  398.     MAX-ACCESS read-only
  399.     STATUS current
  400.     DESCRIPTION
  401.       "The value of sysUpTime at the time this application last
  402.        had an outbound association.  If the last association
  403.        occurred prior to the last initialization of the network
  404.        subsystem, then this object contains a zero value."
  405.     ::= {applEntry 12}
  406.  
  407. applRejectedInboundAssociations OBJECT-TYPE
  408.     SYNTAX Counter32
  409.     MAX-ACCESS read-only
  410.     STATUS current
  411.     DESCRIPTION
  412.       "The total number of inbound associations the application
  413.        entity has rejected, since application initialization."
  414.     ::= {applEntry 13}
  415.  
  416. applFailedOutboundAssociations OBJECT-TYPE
  417.     SYNTAX Counter32
  418.     MAX-ACCESS read-only
  419.     STATUS current
  420.     DESCRIPTION
  421.       "The total number associations where the application entity
  422.        is initiator and association establishment has failed,
  423.        since application initialization."
  424.     ::= {applEntry 14}
  425.  
  426.  
  427. -- assocTable augments the information in applTable with data
  428. -- about associations.  This is treated as a separate group to
  429. -- the basic application table.  Where simplified appplication
  430. -- monitoring is needed, the assocTable group may be omitted.
  431. -- This table is indexed by applIndex and assocIndex, with the
  432. -- application index coming first.   
  433.  
  434. assocTable OBJECT-TYPE
  435.     SYNTAX SEQUENCE OF AssocEntry
  436.     MAX-ACCESS not-accessible
  437.     STATUS current
  438.     DESCRIPTION
  439.         "The table holding a set of all active application
  440.          associations."
  441.     ::= {applObjects 2}
  442.  
  443. assocEntry OBJECT-TYPE
  444.     SYNTAX AssocEntry
  445.     MAX-ACCESS not-accessible
  446.     STATUS current
  447.     DESCRIPTION
  448.       "An entry associated with an association for a network
  449.        service application."
  450.     INDEX {applIndex, assocIndex}
  451.     ::= {assocTable 1}
  452.  
  453. AssocEntry ::= SEQUENCE {
  454.     assocIndex
  455.         INTEGER,
  456.     assocRemoteApplication
  457.         DisplayString,
  458.     assocApplicationProtocol
  459.         OBJECT IDENTIFIER,
  460.     assocApplicationType
  461.         INTEGER,
  462.     assocDuration
  463.         TimeStamp
  464. }
  465.  
  466. assocIndex OBJECT-TYPE
  467.     SYNTAX INTEGER (1..2147483647)
  468.     MAX-ACCESS not-accessible
  469.     STATUS current
  470.     DESCRIPTION
  471.       "An index to uniquely identify each association for a network
  472.        service application."
  473.     ::= {assocEntry 1}
  474.  
  475. assocRemoteApplication OBJECT-TYPE
  476.     SYNTAX DisplayString
  477.     MAX-ACCESS read-only
  478.     STATUS current
  479.     DESCRIPTION
  480.       "The name of the system running remote network service
  481.        application.  For an IP-based application this should be
  482.        either a domain name or IP address.  For an OSI application
  483.        it should be the string encoded distinguished name of the
  484.        managed object.  For X.400(84) MTAs which do not have a
  485.        Distinguished Name, the RFC-1327 syntax 'mta in globalid'
  486.        should be used."
  487.     ::= {assocEntry 2}
  488.  
  489. assocApplicationProtocol OBJECT-TYPE
  490.     SYNTAX OBJECT IDENTIFIER
  491.     MAX-ACCESS read-only
  492.     STATUS current
  493.     DESCRIPTION
  494.       "An identification of the protocol being used for the
  495.        application.  For an OSI Application, this will be the
  496.        Application Context.  For Internet applications, the IANA
  497.        maintains a registry of the OIDs which correspond
  498.        to well-known applications.  If the application protocol is
  499.        not listed in the registry, the value {applProtoID port} is
  500.        used where 'port' corresponds to primary port being used by
  501.        the application."
  502.     ::= {assocEntry 3}
  503.  
  504. assocApplicationType OBJECT-TYPE
  505.     SYNTAX INTEGER {
  506.         ua-initiator(1),
  507.         ua-responder(2),
  508.         peer-initiator(3),
  509.         peer-responder(4) }
  510.     MAX-ACCESS read-only
  511.     STATUS current
  512.     DESCRIPTION 
  513.       "Shows whether the remote application is a User Agent, or a
  514.        peer server, and whether the remote end is initiator or
  515.        responder."
  516.     ::= {assocEntry 4}
  517.  
  518. assocDuration OBJECT-TYPE
  519.     SYNTAX TimeStamp
  520.     MAX-ACCESS read-only
  521.     STATUS current
  522.     DESCRIPTION
  523.       "The value of sysUpTime at the time this association was
  524.        started.  If this association started prior to the last
  525.        initialization of the network subsystem, then this
  526.        object contains a zero value."
  527.     ::= {assocEntry 5}
  528.  
  529.  
  530. -- Conformance information
  531.  
  532. applConformance OBJECT IDENTIFIER ::= {application 2}
  533.  
  534. applGroups      OBJECT IDENTIFIER ::= {applConformance 1}
  535. applCompliances OBJECT IDENTIFIER ::= {applConformance 2}
  536.  
  537. -- Compliance statements
  538.  
  539. applCompliance MODULE-COMPLIANCE
  540.     STATUS current
  541.     DESCRIPTION
  542.       "The compliance statement for SNMPv2 entities
  543.        which implement the Network Services Monitoring MIB
  544.        for basic monitoring of network service applications."
  545.     MODULE  -- this module
  546.       MANDATORY-GROUPS {applGroup}
  547.     ::= {applCompliances 1}
  548.  
  549. assocCompliance MODULE-COMPLIANCE
  550.     STATUS current
  551.     DESCRIPTION
  552.       "The compliance statement for SNMPv2 entities
  553.        which implement the Network Services Monitoring MIB
  554.        for basic monitoring of network service applications
  555.        and their associations."
  556.     MODULE  -- this module
  557.       MANDATORY-GROUPS {applGroup, assocGroup}
  558.     ::= {applCompliances 2}
  559.  
  560.  
  561. -- Units of conformance
  562.  
  563. applGroup OBJECT-GROUP
  564.     OBJECTS {
  565.       applIndex, applName, applVersion, applUptime,
  566.       applOperStatus, applLastChange, applInboundAssociations,
  567.       applOutboundAssociations, applAccumulatedInboundAssociations,
  568.       applAccumulatedOutboundAssociations, applLastInboundActivity,
  569.       applLastOutboundActivity, applRejectedInboundAssociations,
  570.       applFailedOutboundAssociations }
  571.     STATUS current
  572.     DESCRIPTION
  573.       "A collection of objects providing basic monitoring of
  574.        network service applications."
  575.     ::= {applGroups 1}
  576.  
  577. assocGroup OBJECT-GROUP
  578.     OBJECTS {
  579.       assocIndex, assocRemoteApplication,
  580.       assocApplicationProtocol, assocApplicationType,
  581.       assocDuration }
  582.     STATUS current
  583.     DESCRIPTION
  584.       "A collection of objects providing basic monitoring of
  585.        network service applications' associations."
  586.     ::= {applGroups 2}
  587.  
  588.  
  589. -- Values of the form { applProtoID port } are used for
  590. -- protocols that don't have assigned OIDs. 'port'
  591. -- corresponds to primary port being used by the
  592. -- application.
  593.  
  594. applProtoID OBJECT IDENTIFIER ::= {application 3}
  595.  
  596. END
  597.  
  598. Expires: February 18, 1994
  599.  
  600.